package com.supplychainapi.utils;

import com.vdurmont.emoji.EmojiParser;
import org.apache.commons.lang3.StringUtils;

/**
 * Created by wangziqi on 2017/9/27.
 */
public class StringUtil {

    public static String autoGenericCode(String code, int num) {
        String result = "";
        result = String.format("%0" + num + "d", Long.parseLong(code == null ? "1000" : code) + 1);
        return result;
    }

    /**
     * 获取执行的类名
     * @param classz
     * @return
     */
    public static String getClassName(Class classz){
        String clazzName3 = new Object() {
            public String getClassName() {
                String clazzName = classz.getName();
                return clazzName.substring(clazzName.lastIndexOf(".")+1,clazzName.length()).replace("$1","");

            }
        }.getClassName();
        return clazzName3;
    }


    /**
     * 获取执行的类加方法名_分割
     * @param classz
     * @return
     */
    public static String getMethodName(Class classz){
        return getClassName(classz).concat("_").concat(getMethodName());

    }


    /**
     * 获取执行时的方法名
     * @return
     */
    public static String getMethodName(){
        String funcName2 = new Throwable().getStackTrace()[1].getMethodName();
        return funcName2;
    }

    /**
     * 检查字符是否含有表情
     * @param str
     * @return
     */
    public static boolean checkIsEmoji(String str){
        if(StringUtils.isBlank(str)){
            return false;
        }
        String string= EmojiParser.removeAllEmojis(str);
        return str.length() != string.length();
    }

    /**
     * 拼装  全名  ，物料名称有变更 拼装新名字至全名
     *
     * @param str
     * @param newName
     * @return
     */
    public static String replaceLastName(String str, String newName) {
        if (StringUtils.isBlank(str)) {
            return "";
        }
        if (str.contains("_")) {
            String[] sz = str.split("_");
            sz[sz.length - 1] = newName;
            StringBuffer buffer = new StringBuffer();
            int length = sz.length;
            int i = 0;
            for (String s : sz) {
                i++;
                buffer.append(s);
                if (i < length) {
                    buffer.append("_");
                }
            }
            String result = buffer.toString();
            return result;
        }
        return str;
    }
}
